New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

metal-promise

Package Overview
Dependencies
Maintainers
11
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

metal-promise

Promises polyfill from Google's Closure Library in ES6

  • 3.0.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2K
decreased by-16.93%
Maintainers
11
Weekly downloads
 
Created
Source

metal-promise

Build Status

/*!
 * Promises polyfill from Google's Closure Library in ES6.
 *
 *      Copyright 2013 The Closure Library Authors. All Rights Reserved.
 *
 * Promise support is not ready on all supported browsers,
 * therefore core.js is temporarily using Google's promises as polyfill. It
 * supports cancellable promises and has clean and fast implementation.
 */

Use

Simple use case

import CancellablePromise from 'metal-promise';

new CancellablePromise(function(resolve, reject) {
  asyncFunction(function(err) {
    if (err) {
      reject(err);
    }
    else {
      resolve();
    }
  });
})
.then(function() {
  // Invoked once resolved
})
.catch(function(err) {
  // Invoked once rejected
});

Progress tracking

In addition to Google Closure's implementation of Promise, the ProgressPromise class is also provided for tracking the progress of an async process.

import {ProgressPromise} from 'metal-promise';

new ProgressPromise(function(resolve, reject, progress) {
  progress(0.3);
  progress(0.5);
  progress(0.7);
  progress(0.9);

  setTimeout(function() {
    resolve();
  }, 100);
})
.progress(progress => {
  // Will invoke 4 times, 0.3, 0.5, 0.7, 0.9
})
.then(function() {
  // Invoked after all progress calls
});

Note that the progress function must be invoked with a number between 0 and 1.

progress(2); // TypeError: The progress percentage should be a number between 0 and 1

It also cannot be invoked with a smaller number than the previous call.

progress(0.3);
progress(0.1); // Error: The progress percentage can't be lower than the previous percentage

Advanced use cases

To see more advanced documentation, please visit Google Closure Library's documentation;

Setup

  1. Install a recent release of NodeJS if you don't have it yet.

  2. Install local dependencies:

npm install
  1. Run the tests:
npm test

Contributing

Check out the contributing guidelines for more information.

Keywords

FAQs

Package last updated on 26 Sep 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc